In current communication systems, datagrams are transferred from a source to a destination according to a known procedure or protocol, typically as part of the so-called Open Systems Interconnection Model (OSI model). In accordance with the OSI model, higher level communication datagram segments (which are often called “Service Data Units” or SDUs) are packed in transport containers (which are often called “Protocol Data Units” or PDUs), transported by lower layers via a physical medium. In some systems, particularly but not exclusively systems defined by IEEE standards, a Media Access Control (MAC) sub-layer SDU is called a “MAC Service Data Unit” (“MSDU”) and a MAC sub-layer PDU is called a MAC Protocol Data Unit (“MPDU”). 802.11 WLANs are one such example of systems defined by an IEEE standard.
In some systems, each container is assigned a unique sequence number (“SN”), which is typically set by the chronological order in which the containers are delivered from a higher layer to a lower layer. The PDU in such systems has a sequence number field for holding a sequence number. In current communication systems, the sequence position of a transport container and its sequence numbers cannot be changed after the containers first transmission. When a container has been transmitted by a source but not correctly received by a destination, the result is a called a “transmission failure” or simply “container failure”. According to current technology, when a container has failed, the source will retransmit the container with the same sequence number, and the destination will use the SNs of all the containers to recreate the correct order of the containers intended by the source, regardless of the fact that the destination might not receive the containers in their correct sequential order. In some systems, the PDU has a sequence number field for holding a sequence number.
In some systems, there is a defined a “maximum transmission unit” (“MTU”) of a container, typically the largest size of container that may be transmitted, possibly measured in number of bytes. In other systems, there is a maximum transmission time which, at maximum transmission rate, translates to a maximum transmission unit MTU for such systems. Transmitters typically try to avoid exceeding the MTU limit by encapsulating SDUs in PDUs that meet the MTU limitation, possibly by fragmenting the datagram payload into two or more smaller pieces. However this is not always possible. Since the MTU sometimes depends on the selected TX format, and this is not always known to the higher layer if the container is larger than the MTU, the container transmission will fail, or the container will simply be dropped from a transmission of multiple containers. In either case, system performance degrades. The problem described herein occurs in all communication systems, and particularly in systems where operating conditions can change rapidly, thereby leading to sharp degradations of system performance and a decrease in the MTU value. That is typical, for example, in wireless systems, but not limited to wireless systems.
Various solutions have been implemented for this problem, none of which are entirely satisfactory. One solution is to allow the datagram payload to be fragmented or “partitioned” into two or more smaller pieces, each piece of which is then encapsulated in a new transport container that does not exceed the MTU limit. These multiple containers are then aggregated in a process called “frame aggregation”. Although this approach will allow transmission of long datagram payloads, it also complicates the protocol, adds communication overhead, and it can be implemented only in systems in which (1) this solution has been written into the standard and (2) the source and destination employing the solution are both capable of implementing the solution. The second requirement is not trivial, since legacy units may not be configured to implement this approach.
A second solution which has been implemented is to retransmit failed containers at a lower rate in order to improve the likelihood of successful transmission. This solution is limited in that standards generally define maximum transmission times which might not be sufficient to transmit the containers the lower data rate. In addition, environmental conditions may make even the lower rate insufficient. In addition, the stream of container transmission may be such that the lower rate is simply insufficient to transmit all the required information at a given packet error rate (PER) level limits.
A third solution that has been implemented is to wait until transmission conditions have improved, then to retransmit the failed containers at the standard transmission rate, thereby avoiding the problems associated with transmission at a lower rate. This solution increases latency for failed containers, increases latency also for subsequent containers that require prior transmission of the failed containers, and makes the entire system dependent on environmental conditions which are both highly variable and uncontrollable. Since packet viability is often limited by a Time to Life, “TTL”, increased latency may lead to expiration of packets prior to delivery, which increases the PER.
A fourth solution that has been implemented is to ignore the protocol rules about MTU, and to allow transmissions longer than the MTU limits. This may work temporarily in systems in which there is a relative paucity of sources and receivers, but as the system loads up with additional units, transmissions longer than the permitted maximum may ultimately lead to system chaos
A fifth solution is to avoid the problem entirely by not allowing long messages, or by placing limits on the degree of aggregation that may be implemented. This solution reduces the nature of data that may be transmitted, or adds communication overhead, or both.
All of the solutions above suffer from one or more of the following disadvantages:                1. Significant, potentially drastic, increase in the packet error rate.        2. Complicating a communication protocol.        3. Adding significant communication overhead, thereby reducing system efficiency.        4. Ignoring the fact that some units, possibly legacy units, cannot function with the proposed solution.        5. Overruling protocol rules, which can cause interoperability problems with legacy units, and which can lead to chaos as a system approaches system capacity.        6. Latency increases.        7. Dropping all failed aggregated packets at a container, which makes the system entirely depending on the variability of a changing environment, and which cannot make any distinction between the kinds of information or size of information packets in failed transmissions.        
The description above, including system requirements and performance, problems, and possible solutions, applies also, with required changes, to all networks, including wide area networks such as W-CDMA, LTE and local area networks such as WLAN, in which the sequence numbers, “SNs”, cannot be changed after a packet has been transmitted for the first time. As for 802.11 WLAN in particular:
1. In some technologies, such as 802.11 WLAN, PDUs have a sequence number field that holds a sequence number for indicating sequential ordering of PDUs in a stream.                2. In some IEEE standards, such as 802.11 WLAN, frame aggregation is used to increase throughput by encapsulating multiple higher-layer frames in a single lower-layer frame. In 802.11 WLAN in particular, a physical-layer protocol data unit (PPDU) includes a significant amount of overhead, including, for example, PPDU headers. At the highest data rates, this overhead can consume more bandwidth than the data frame payload.        3. The IEEE 802.11 WLAN standard defines two levels of MAC packets aggregation. These are (a) aggregation of MAC service data units (MSDUs) at the top of the MAC layer, sometimes called “MSDU aggregation” or simply “A-MSDU”, and (b) aggregation of MAC protocol data units (MPDUs) at the bottom of the MAC layer, sometimes called “MPDU aggregation” or simply “A-MPDU”. Both types of aggregation group multiple data frames into one large frame. It is possible also to combine the two aggregations (a) and (b) by aggregating MSDUs into A-MSDUs, and then encapsulating these A-MSDUs in MPDUs that are in turn aggregated in aggregate MPDUs (A-MPDUs).        4. As explained above, each of the transport containers is assigned at the first transmission with a unique sequence number (SN), and this sequence is generally the chronological order in which the containers are transmitted by a source at the higher layer of the OSI model. In the IEEE 802.11 WLAN, this sequence cannot be changed after first transmission. When MPDUs are not correctly received in 802.11 WLAN, the transmitter will retransmit them and the receiver will use the SNs to deliver the encapsulated MSDUs in the order they were transmitted (even though they may be received out of order over the air due to retransmissions).        5. When A-MSDU aggregation is used, the IEEE 802.11 protocol does not support the fragmentation mechanism. The result is that the MPDUs having length that exceeds the MTUs will be dropped. This phenomenon occurs often at a wireless link where the link conditions between the transmitter and the receiver have deteriorated.        6. In the A-MSDU-encapsulated-in-A-MPDU scenario described above, the transmitter will typically retransmit failed MPDUs in a lower rate to improve the likelihood of correct reception. In this case, the MPDU transmission time will increase, possibly above the limit allow by the 802.11 WLAN standard, which is currently approximately 5.4 ms per PPDU. If the maximum transmission time will be exceeded, the MPDU must be dropped. In some scenarios, the dropping of MPDUs will increase significantly the packet error rate (PER) in some scenarios.        7. The six solutions for communication systems generally, as described above, may be implemented for 802.11 WLAN systems, but the same problems will occur in the 802.11 WLAN systems as for communication systems generally. Further, in 802.11 WLAN, it is impossible to encapsulate MSDUs or A-MSDUs that were part of failed transmissions into a different number of MPDUs before retransmission, in order to reduce the size of transmission and therefore the time duration of transmission for each of the failed MPDUs. This cannot be done because SNs were already assigned to the failed and subsequent MPDUs, so if formerly transmitted MSDUs or A-MSDUs were encapsulated and transmitted as parts of new MPDUs, the receiver would not be able to correctly identify the retransmitted MPDUs or place such retransmitted MPDUs in their correct order for subsequent delivery of the encapsulated MSDUs to further layers of the OSI protocol.        